SPSS 输出修改 – 教程与示例

作者:Ruben Geert van den Berg,归档于 SPSS A-Z

本教程包含以下内容:

  1. 将绝对相关系数 > 0.5 的值加粗
  2. 设置输出表格的小数位数
  3. 转置一个或多个输出表格
  4. 删除选定的输出项
  5. 设置输出表格的字体大小和样式
  6. 设置图表的精确尺寸

所有示例都需要 SPSS 22 或更高版本。我们将使用 bank_clean.sav (截图如下) 作为贯穿本教程的数据集。

SPSS 输出修改 数据视图 Bank Clean

OUTPUT MODIFY - 是什么以及为什么?

OUTPUT MODIFY 是一个 SPSS 命令,它通过语法编辑一个或多个 SPSS 输出项,主要是表格和图表。OUTPUT MODIFY 在 SPSS 22 版本中引入,与 Python 一起,是 SPSS 中最重要的省时工具之一。OUTPUT MODIFY 可以从菜单访问(我们稍后会介绍),但我们建议复制粘贴编辑或直接输入语法。

OUTPUT MODIFY 的替代方案

在使用 OUTPUT MODIFY 之前,有 3 种在创建输出项之后编辑它们的方式:

  • 手动:双击输出项后,可以编辑其大多数属性。对于某些调整,这仍然是唯一合理的方法。但应尽量避免,因为它非常耗时且不可重复。
  • SPSS 脚本:许多用户不了解,SPSS 包含一种称为 SaxBasic 的 脚本语言,它与 VBA 相关。SPSS 脚本已被弃用,取而代之的是 SPSS 14 版本中引入的 Python。
  • Python 脚本:这是编辑 输出查看器 (output viewer) 中几乎所有内容的最强大选项,但可能需要陡峭的学习曲线。如果 OUTPUT MODIFY 无法完成,Python 脚本可能会成功。

除了使用 OUTPUT MODIFY 之外,您还可以在创建输出项之前编辑它们:

  • 变量格式 - 使用 FORMATSALTER TYPE 设置 - 主要决定了统计量在输出表格中的显示方式。
  • 您可以在创建图表之前设置图表模板,从而将样式应用于图表。在创建图表之后应用图表模板(手动、使用 Python 脚本或使用 OUTPUT MODIFY)通常不太方便。
  • 为了创建更漂亮的表格,请在创建表格之前设置 表格外观 (tablelook)。同样,您可以在创建表格之后应用表格模板,但这通常不太方便。
  • OMS 可以完全阻止输出项的创建。一个例子是 CROSSTABS 命令附带的通常不需要的“个案处理摘要 (Case processing summary)”表格。

从 SPSS 菜单中使用 OUTPUT MODIFY

首先,让我们从下面的语法运行一个快速的 相关 (correlation) 矩阵。同样,我们将使用 bank_clean.sav 作为贯穿本教程的数据集。

***创建没有 N 或显著性的干净相关矩阵。**
FACTOR
  /VARIABLES q1 TO q9
  /PRINT CORRELATION.

现在,让我们尝试通过从菜单运行 OUTPUT MODIFY 来将所有绝对相关系数 > 0.50 的值加粗。我们的第一个选择是导航到 U tililities SPSS 菜单箭头 Style Output,但这仅在您位于输出查看器 (output viewer) 窗口中时才可用。我们的第二个选择是在右键单击输出项后选择 Style Output。无论哪种情况,我们都会首先看到如下所示的输出选择对话框。

SPSS 输出修改 右键单击输出项

现在,您可以选择要修改的输出项。个人而言,我认为这里有太多的选项,而且我不清楚它们的含义。我发现更容易在语法中进行选择。单击 C ontinue 会打开主对话框。

SPSS 输出修改 主窗口

OUTPUT MODIFY 对话框允许您指定对输出项元素的修改。我将跳过细节,因为 - 同样 - 我发现从语法中执行此操作更容易。无论如何,我可以从菜单粘贴的最佳语法如下所示。

OUTPUT MODIFY 示例 - 从菜单粘贴

***从 SPSS 菜单粘贴的 OUTPUT MODIFY 语法示例。**
OUTPUT MODIFY NAME=Document7
/REPORT PRINTREPORT=NO
/SELECT TABLES
/IF COMMANDS=["Factor Analysis(1)"] LABELS=[EXACT("Correlation Matrix")] INSTANCES=[1]
/DELETEOBJECT DELETE=NO
/OBJECTPROPERTIES VISIBLE=ASIS
/TABLECELLS SELECT=[CORRELATION] SELECTDIMENSION=COLUMNS SELECTCONDITION="Abs(x)>=0.5"
STYLE=REGULAR BOLD APPLYTO=CELL.

OUTPUT MODIFY - 语法问题

我们刚刚粘贴的语法是彻头彻尾的愚蠢,因为它在大多数情况下都行不通NAME=Document7 将该命令限制为名为“Document7”的输出窗口。这是我的表格现在所在的位置,但明天当我继续处理我的项目时可能就不是了。更不用说当同事或客户试图复制我的工作时。这首先就违背了使用语法的全部意义。

此外,该语法太长且复杂而无法手动编写,但其中大部分根本不起作用。现在,SPSS 中的大多数事情(包括 OUTPUT MODIFY)最好通过编写简单、干净的语法来完成。可悲的是,此粘贴的语法是一个非常糟糕的示例。这也适用于许多其他命令。

最后,"Abs(x) ≥ 0.5" 包括对角线元素,因为 abs(1.000) > 0.5。我需要的是类似 “Abs(x) ≥ 0.5 & Abs(x) < 1" 的东西。我试图从菜单完成此操作。我失败了。

简而言之,我认为粘贴的语法糟透了,我也不喜欢 OUTPUT MODIFY 对话框。所以现在让我们研究一些以正确方式完成事情的例子。

1. 将相关系数 > 0.5 的值加粗

***创建没有 N 或显著性的干净相关矩阵。**
FACTOR
  /VARIABLES q1 TO q9
  /PRINT CORRELATION.

***将绝对相关系数 > 0.5 的值加粗。**
OUTPUT MODIFY
/SELECT TABLES
/IF COMMANDS = ['factor analysis'] SUBTYPES = ['Correlation Matrix']
/TABLECELLS SELECT = [body] SELECTCONDITION = ["0.5 < abs(x) < 1"] STYLE = BOLD.

结果

SPSS 条件格式化 与 OUTPUT MODIFY 示例

说明

对于处理活动输出窗口中的所有表格,只需使用 OUTPUT MODIFY /SELECT TABLES...。或者,通过添加 /IF 子命令来指定一些条件,如 OUTPUT MODIFY /SELECT TABLES /IF COMMANDS = ['FACTOR ANALYSIS']。只有满足所有条件的表格才会被处理。令人困惑的是,COMMANDS 并不指创建输出的命令(在本例中为 FACTOR)。

相反,COMMANDS 指的是 OMS 命令标识符,您可以从输出大纲中复制粘贴。SUBTYPESLABELS 也是如此,如下所示。

SPSS 复制 Oms 命令标识符

现在,我们表格的 BODY (主体) 仅包含 相关 (correlation)。如果设置一些条件,我们将它们称为 x,如 x > 0.5。那么如何设置介于 0.50 和 1 之间的绝对相关系数的样式(不包括 1)?显而易见的方法似乎是 abs(x) > 0.5 & abs(x) < 1,但它不知何故不起作用。相反,0.5 < abs(x) < 1 可以完成这项工作。但是,这是一种在 SPSS 中制定此类条件的非常规方式。

最后但并非最不重要的一点是,OUTPUT MODIFY 似乎无法撤消加粗操作。据我所知,下面的语法应该有效,但它不起作用。

***尝试撤消加粗(不起作用)。**
OUTPUT MODIFY
/SELECT TABLES
/IF COMMANDS = ['factor analysis'] SUBTYPES = ['Correlation Matrix']
/TABLECELLS SELECT = [body] SELECTCONDITION = ["0.5 < abs(x) < 1"] STYLE = REGULAR.

2. 设置输出表格的小数位数 - 示例 I

***设置输出表格的小数位数 - 示例 I。**
DESCRIPTIVES SALARY.

***将上一个表格(无论是什么)中所有单元格的格式设置为 dollar1(零个小数位)。**
OUTPUT MODIFY
/SELECT TABLES
/IF INSTANCES = [last] /***SELECT LAST PIVOT TABLE IN OUTPUT***/
/TABLECELLS SELECT = [body] FORMAT = 'dollar1'.

结果

使用 OUTPUT MODIFY 命令设置 SPSS 输出表格的小数位数的示例

设置输出表格的小数位数 - 示例 II

***设置输出表格的小数位数 - 示例 II。**
DESCRIPTIVES q1 TO q4.

DESCRIPTIVES q5 TO q9.

***为输出中所有描述性表格的第 4 列和第 5 列设置 2 个小数位。**
OUTPUT MODIFY
/SELECT TABLES
/IF COMMANDS = ['descriptives'] /***SELECT ALL TABLES IN OUTPUT CREATED BY DESCRIPTIVES COMMAND***/
/TABLECELLS SELECT = [POSITION(4) POSITION(5)] SELECTDIMENSION = COLUMNS FORMAT = 'f3.2'.

***注意:"[POSITION(4) POSITION(5)] SELECTDIMENSION = COLUMNS" 选择第 4 列和第 5 列。**

3. 转置一个或多个输出表格

***运行 2 个基本均值表。**
MEANS q1 TO q4.

MEANS q5 TO q9.

***仅转置最后一个均值表,但不包括个案处理摘要。**
OUTPUT MODIFY
/SELECT TABLES
/IF COMMANDS = ['means(last)'] SUBTYPES = ['report'] /*** SELECT ONLY "REPORT" (DESCRIPTIVES) TABLE CREATED BY LAST MEANS COMMAND ***/
/TABLE TRANSPOSE = YES.

结果

SPSS 输出修改 转置表格示例

说明

此示例显示了如何创建比使用 DESCRIPTIVES 更好的描述性统计表格。使用 MEANS 代替可以获得更好的表格格式,并允许报告 中位数 (median) 以及 偏度 (skewness)峰度 (kurtosis),而无需它们的标准误差。有关此的更多信息,请参见 SPSS DESCRIPTIVES - 问题和修复

4. 删除选定的输出项

***创建“大五”表。**
FREQUENCIES GENDER.

DESCRIPTIVES SALARY.

CROSSTABS EDUC BY MARIT.

MEANS SALARY BY GENDER.

CORRELATIONS SALARY WITH WHOURS.

***删除所有不需要的表格:频率表的“统计”以及均值和描述性统计的“个案处理摘要”。**
OUTPUT MODIFY
/SELECT TABLES
/IF SUBTYPES = ['case processing summary','statistics']
/DELETEOBJECT DELETE = YES.

结果

SPSS 从输出中删除不需要的表格

说明

如果您需要向未安装 SPSS 的客户进行一些“快速而肮脏”的报告,此示例非常方便。在这种情况下,删除所有不需要的输出并将整个输出文档转换为 PDF。您可以通过从 F ile SPSS 菜单箭头 Expor t (仅在输出窗口中可用)创建一个 OUTPUT EXPORT 命令来完成此操作。

或者,清理您的输出窗口并将所有内容一次性转换为 .rtf(富文本格式,“ WORD ”)文件。由于这将包括所有表格和图表,因此您可以将其用作最终报告的良好起点。

5. 设置输出表格的字体大小

注意:这对于 FREQUENCIESDESCRIPTIVESCORRELATIONS 可以正常工作,而对于 MEANSCROSSTABS 仅部分有效。

***创建“大五”表。**
FREQUENCIES GENDER.

DESCRIPTIVES SALARY.

CROSSTABS EDUC BY MARIT.

MEANS SALARY BY GENDER.

CORRELATIONS SALARY WITH WHOURS.

***将字体大小设置为 25 磅。**
OUTPUT MODIFY
/SELECT TABLES
/TABLECELLS SELECT = [body,headers,title] FONTSIZE = 25.

结果

SPSS 设置所有表格的字体大小 输出修改

正如我们所看到的,OUTPUT MODIFY 似乎无法修改角标签和层维度。一种解决方法是创建一个 表格外观 (tablelook),该表格外观为所有表格元素设置字体大小。接下来,OUTPUT MODIFY 可以将此模板应用于一个、多个或所有输出表格,如下所示。

***为所有表格设置表格模板,其中所有元素的字体均为 15 像素。**
OUTPUT MODIFY
/SELECT TABLES
/TABLE TLOOK = "C:\Program Files\IBM\SPSS\Statistics\25\Looks\Original-15pt.stt".

***如果表格模板位于默认的“Looks”文件夹中(例如“C:\Program Files\IBM\SPSS\Statistics\25\Looks\”),则可以使用简写。**
OUTPUT MODIFY
/SELECT TABLES
/TABLE TLOOK = "Original-15pt".

***不要对输出窗口中的任何表格使用表格模板。**
OUTPUT MODIFY
/SELECT TABLES
/TABLE TLOOK = NONE.

请记住,CD 会忽略 TLOOK 设置,如果您的客户必须在自己的计算机上复制内容,这将非常烦人。您需要在此处使用绝对路径,并在每次移动项目文件夹时调整这些路径。

或者,如果将表格模板放在默认的 looks 文件夹中(例如 C:\Program Files\IBM\SPSS\Statistics\24\Looks),则可以使用简写。但是,通常您希望在那里开发、存储和备份任何项目文件。

6. 设置图表的精确尺寸

***创建出生日期 (dob) 的基本直方图。**
FREQUENCIES DOB
/FORMAT NOTABLE
/HISTOGRAM.

***将图表大小设置为 720 x 300 磅(结果为 964 x 404 磅)。**
OUTPUT MODIFY
/SELECT CHARTS
/OBJECTPROPERTIES SIZE=POINTS(720,300).

结果

SPSS 输出修改 设置图表大小不起作用

显然,OUTPUT MODIFY 设置的图表大小与指定的不同。要设置正确的图表大小,请尝试我们的 SPSS - 设置图表大小工具